package com.xbongbong.pro.statistic.pojo;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xbongbong.paas.toolbox.wrap.BaseDTO;
import com.xbongbong.pro.domain.entity.ext.ChartEntityEtx;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.util.List;

/**
 *  保存的输入和编辑的输出
 * @author 梁鲁江
 * @date 2019/1/15 15:14
 * @since v1.0
 * @version v1.0
 */
@Setter
@Getter
@ToString
public class ChartSavePojo extends BaseDTO{
    private static final long serialVersionUID = 3311206035569628432L;
    /**
     * 是否有查询条件；1：是；0:否；
     */
    private Integer hasSearch;
    /**
     * chartId不为空则为编辑全局查询条件，否则是新加了全局查询条件
     */
    private Long chartId;
    /**
     * 查询条件
     */
    private JSONArray search;
    /**
     * 关联图表id数组
     */
    private JSONArray linkIds;
    /**
     * 分类id
     * 报表的分类id必须为第二级别
     */
    @NotNull(message = "{pojo.msg.chartSaveP.categoryId.NotNull}")
    private Long categoryId;
    /**
     * 报表信息
     */
    @Valid
    private List<ChartEntityEtx> chartList;
    /**
     * 仪表盘全局样式
     */
    private JSONObject globalStyleOption;
    /**
     * 全局权限信息
     */
    private JSONObject chartPermissions;
    /**
     * 单维度多指标信息
     */
    private Boolean singleDimensionPermissions;
    /**
     * 数据预警信息
     */
    private Boolean dataWarningPermissions;
    /**
     * BI单表数据量限制
     */
    private Integer biDataNumLimit;


    /**
     * 是否能使用国际化语言切换
     */
    private Boolean multiLang;


    /**
     * 仪表盘下的报表数量限制
     */
    private Integer chartNumLimit;
    public ChartSavePojo() {
        //默认没有
        this.hasSearch = 0;
    }
}
